'''
Description: 
Author: Zilu
Date: 2021-11-04 14:15:51
Version: 
LastEditTime: 2021-11-04 14:30:20
LastEditors: Zilu
'''
# 可以在list中使用循环生成list
squares = [x * x for x in range(1, 11)]

# 循环后面还可以跟上条件选择
even_squares = [x * x for x in range(1, 11) if x % 2 == 0]

# 两层循环实现全排列
m_n = [m+n for m in "ABC" for n in "XYZ"]

# 使用列表生成式列出文件和目录名
import os
[d for d in os.listdir()]

# list comprehension 中if-else的用法
[x for x in range(1,11) if x%2==0]  # 这里if后面不可以用else
[x if x%2==0 else -x for x in range(1,11)]  # 这里if后面要加else

# 因为list中的要计算出一个变量值作为列表的项
# for前面的if-else是表达式，后面的if是筛选条件

# 练习：在包含数字的list中让字符串全部小写
L1 = ['Hello', 'World', 18, 'Apple', None, "Nick123"]
L2 = [item.lower() if isinstance(item, str) else item for item in L1 ]

